cssprovider: Don't fail with invalid syntax when parsing a value
authorBenjamin Otte <otte@redhat.com>
Fri, 8 Apr 2011 15:17:27 +0000 (17:17 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 18 May 2011 19:58:44 +0000 (21:58 +0200)
Instead, raise a PROPERTY_VALUE error, find the next semicolon or
closing bracket and resume parsing.

gtk/gtkcssprovider.c

index c03e7493d6fdd7980553fa1c2c36329c8c1767c8..0845ed4844882b04b388f28e692d5aa36abf8fa4 100644 (file)
@@ -2386,8 +2386,12 @@ parse_rule (GtkCssProvider  *css_provider,
       if (scanner->token != G_TOKEN_IDENTIFIER)
         {
           g_free (prop);
-          gtk_css_provider_invalid_token (css_provider, "Property value");
-          return G_TOKEN_IDENTIFIER;
+          gtk_css_provider_error (css_provider,
+                                  GTK_CSS_PROVIDER_ERROR,
+                                  GTK_CSS_PROVIDER_ERROR_PROPERTY_VALUE,
+                                  "Could not parse property value");
+          css_provider_pop_scope (css_provider);
+          goto find_end_of_declaration;
         }
 
       value_str = scanner->value.v_identifier;